﻿using System.Collections.Generic;

namespace winS.Unity.Process
{
    /// <summary>
    /// Represents a process.
    /// </summary>
    public interface IProcess : IEnumerable<IStep>
    {
        /// <summary>
        /// start Step of this process.
        /// </summary>
        public StartStep startStep { get; }

        public Dictionary<string, IStep> stepDictionary { get; set; }

        /// <summary>
        /// Editor data of this process (Editor Only).
        /// </summary>
        public EditorData editorData { get; set; }

        public IProcessPlayState Play();
        public void Stop();
        public void AddStep(IStep step);
        public void RemoveStep(IStep step);
    }
}